package cn.lutu.util.response;

import lombok.Getter;

/**
 * 通过此枚举定义一些响应状态码信息,
 * 实际项目中会基于不同业务定义不同状态码对象
 */
@Getter
public enum StatusCode {
    SUCCESS(1,"OK"),
    NOT_LOGIN(1000,"未登录"), //所有实例必须是在最上面的
    LOGIN_SUCCESS(1001,"登录成功"),
    PASSWORD_ERROR(1002,"密码错误"),//对象(枚举实例)
    USERNAME_ERROR(1003,"用户名错误"),
    USERNAME_ALREADY_EXISTS(1004,"用户名已存在"),
    FORBIDDEN_ERROR(1005,"无权访问"),
    ERROR_UNKNOWN(5000, "服务器忙，请稍后再试!"),

    OPERATION_SUCCESS(2001,"操作成功"),
    OPERATION_FAILED(2002,"操作失败"),
    VALIDATE_ERROR(2003, "参数校验失败"),
    EMAIL_ERROR(2004,"邮箱输入有误"),
    EMAIL_CODE_ERROR(2005,"验证码错误！"),
    EMAIL_ALREADY_EXSTS(2006,"该邮箱已注册"),
    /**
     * 错误：请求参数格式错误
     */
    ERROR_BAD_REQUEST(4000,"请求参数格式错误"),
    /**
     * 错误：数据不存在
     */
    ERROR_NOT_FOUND(4040,"数据不存在"),
    /**
     * 错误：数据冲突
     */
    ERROR_CONFLICT(4090,"数据冲突"),

    /**
     * 未认证
     */
    ERROR_AUTHORIZED(40100,"未认证，请先登录！"),
    /*
     * 未认证，被禁用
     * */
    ERROR_AUTHORIZED_DISABLED(40101,"账户已被禁用！"),
    /**
     * 没有权限
     */
    ERROR_FORBIDDEN(40300,"该资源，您无权访问"),

    /*
     * JWT过期的异常
     * */
    ERROR_JWT_EXPIRED(60000,"您的登录已过期，请重新登录！"),
    /*
     * JWT签名错误(可能的伪造签名)异常
     * */
    ERROR_JWT_SIGNATURE(60100,"非法访问"),
    /*
     * JWT签名格式错误的异常
     * */
    ERROR_JWT_MALFORMED(60200,"非法访问"),
    /**
     * 错误：未知的修改数据失败
     */
    ERROR_UPDATE(50200,"未知的修改"),

    ERROR_UPLOAD_EMPTY(30000,"上传的文件为空（没有选择有效的文件）"),

    ERROR_UPLOAD_EXCEED_MAX_SIZE(30100,"上传的文件类型有误"),

    ERROR_UPLOAD_INVALID_TYPE(30200,"上传的文件超出限制"),

    ERROR_TITLE_NULL(42000,"文章标题为空"),

    ERROR_IMG_NULL(42100,"请上传图片"),

    ERROR_CONTENT_NULL(42200,"请输入内容");





    /**表示状态码*/
    private int code;
    /**状态码信息*/
    private String msg;
    //所有构造方法默认使用private访问修饰符修饰
    StatusCode(){}
    /**构造方法*/
    StatusCode(int code,String msg){
        this.code=code;
        this.msg=msg;
    }

}

